The present invention is related to the recording of live information. More particularly, the present invention is related to the recording of an asynchronous event after the event occurs.
A particular problem in the recording of live information, i.e., the recording of events as they actually happen, is that a particular event of interest might occur without being recorded. For example, in videography, a videographer might monitor a location, such as a courthouse door, with hopes of capturing an event, such as the exit of a particular person. There are two primary reasons why such an event might not be captured by the videographer. First, the videographer might not start recording in time to capture the event. Second, the videographer might be recording, but might have to stop recording if no more media is available and a change to new media is not completed before the event occurs.
One mechanism has been suggested to solve this problem, and is illustrated in PCT Publication No. WO96/26600. This publication describes a motion video camera which records video and audio media temporarily in a ring buffer. The data is written continuously to the ring buffer, and the ring buffer contents are overwritten, until the camera is triggered to end looped recording. The contents of the ring buffer are appended to a file which is subsequently recorded in a normal, linear recording mode. A form of buffer also is used in fault detection systems such as flight data recorders, shown in U.S. Pat. Nos. 4,409,670 and 5,056,056, and 4,646,241, and logic analyzers, shown in U.S. Pat. Nos. 4,373,193 and 4,139,903.
Maintaining data in a buffer and saving this data when a particular event occurs has several problems. First of all, a typical buffer is usually implemented in integrated circuit memory and thus usually holds only a few megabytes of data. Such a small buffer is insufficient for use in recording asynchronous motion video events. Second, using such a buffer requires an application to control the use of the buffer and the relationship of the data to any subsequently recorded data.
The present invention provides an operating system having a file system which supports writing data to a file in a logical loop of clusters of storage locations. Writing can be performed in looped or unlooped modes, and a transition between looping and non-looped recording may be supported. Recording prior to occurrence of an asynchronous event is performed in a looped mode. After occurrence of the asynchronous event, the data collected in the looped portion is seamlessly merged with subsequently collected data by manipulation of pointers to the clusters by the operating system. By providing such a general structure for use in a file system of a computer, a substantially larger amount of memory is available for looped recording. In fact, several minutes of full motion broadcast quality video may be captured. In addition, by using the file system to handle the storage of data, an application does not need to arrange recorded information on a physical recording medium.
Such a file system may be used in any application which collects data for the purpose of capturing the occurrence of an asynchronous event. Such applications include, but are not limited to, motion video recording, surveillance, test data collection, and other types of systems that need to record events that precede some arbitrary xe2x80x9ctriggerxe2x80x9d condition and which may require a large amount of storage.
Accordingly, one aspect of the present invention is an operating system for a computer which provides a file system through which files containing data are made accessible to application programs. A mode of writing to a file may be enabled wherein data is written in a continuous loop of clusters. Data is thereafter written to the file in a looped mode, wherein a loop has a specified length. When the amount of data written to the file is greater than the loop length, the data is still written into clusters within the loop. When looped writing is disabled, the file is reconstructed into a linear sequence of clusters when looped writing is disabled.
There are numerous other aspects and embodiments of the present invention, including but not limited to a motion video camera having such an operating system, as well as the computer-implemented processes of creating, writing to and reconstructing such looped files. The present invention also may be embodied in computer program products or digital information products for distribution.